Skip to content

test(NODE-6820): test on Graviton processor#4936

Open
tadjik1 wants to merge 5 commits intomainfrom
NODE-6820
Open

test(NODE-6820): test on Graviton processor#4936
tadjik1 wants to merge 5 commits intomainfrom
NODE-6820

Conversation

@tadjik1
Copy link
Copy Markdown
Member

@tadjik1 tadjik1 commented May 5, 2026

Description

Summary of Changes

Adds a new Evergreen build variant (amazon-linux-2023-arm64-graviton4) that runs the driver test suite on AWS Graviton 4 (arm64) hardware using the amazon2023-arm64-latest-large-m8g distro.

Tests included:

  • All three topologies: standalone, replica set, sharded cluster (latest server)
  • Native modules: zstd compression, snappy compression, mongo-client-encryption (CSFLE)

Kerberos testing is out of scope for this PR per NODE-6820.

Notes for Reviewers

The distro amazon2023-arm64-latest-large-m8g was identified in DRIVERS-2436 as the recommended Graviton 4 distro for integration testing (Graviton 4, AL2023).

The new Graviton4 AL2023 Node24 build variant is visible in Evergreen.

What is the motivation for this change?

ARM processors have known behavioral differences from x86 that can cause subtle bugs in native code - most notably, char is unsigned by default on ARM (vs. signed on x86), and floating-point contraction behavior may differ between gcc and clang. MongoDB servers on Graviton are increasingly common in Atlas, making it important to validate that our native driver modules (kerberos, snappy, zstd, CSFLE) behave correctly on this architecture.

Double check the following

  • Lint is passing (npm run check:lint)
  • Self-review completed using the steps outlined here
  • PR title follows the correct format: type(NODE-xxxx)[!]: description
    • Example: feat(NODE-1234)!: rewriting everything in coffeescript
  • Changes are covered by tests
  • New TODOs have a related JIRA ticket

@tadjik1 tadjik1 marked this pull request as ready for review May 7, 2026 08:42
@tadjik1 tadjik1 requested a review from a team as a code owner May 7, 2026 08:42
Copilot AI review requested due to automatic review settings May 7, 2026 08:42
Comment thread .evergreen/generate_evergreen_tasks.js Outdated
run_on: GRAVITON_OS,
expansions: {
NODE_LTS_VERSION: LATEST_LTS,
CLIENT_ENCRYPTION: true
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To test more native modules (libmongocrypt).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Evergreen build variant targeting AWS Graviton4 (arm64) on Amazon Linux 2023 to run a subset of the Node driver test suite on ARM hardware.

Changes:

  • Introduces GRAVITON_OS (amazon2023-arm64-latest-large-m8g) in the Evergreen CI matrix constants.
  • Adds a new build variant (amazon-linux-2023-arm64-graviton4) to the task generator with latest-server topology coverage plus snappy/zstd compression tasks.
  • Updates the generated Evergreen config.yml to include the new build variant.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
.evergreen/generate_evergreen_tasks.js Adds a Graviton4 AL2023 build variant and task list in the Evergreen config generator.
.evergreen/config.yml Adds the generated buildvariant entry for Graviton4 AL2023.
.evergreen/ci_matrix_constants.js Exports a new GRAVITON_OS distro constant used by the generator.

Comment thread .evergreen/generate_evergreen_tasks.js Outdated
Comment thread .evergreen/config.yml
Copy link
Copy Markdown
Contributor

@PavelSafronov PavelSafronov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change runs latest MongoDB on Graviton processor. Do we also want to run older versions?

@tadjik1
Copy link
Copy Markdown
Member Author

tadjik1 commented May 8, 2026

No, this is copy from the ticket description:

Test only the latest server version continuously to check for regressions.

@tadjik1 tadjik1 requested a review from PavelSafronov May 8, 2026 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants